package com.yxinsur.imc.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ToString
public class OrderRiskToCommRiskVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 保单表外键 */
    @ApiModelProperty(name = "保单表外键")
    private Long orderId;

    /** 产品库表的外键（非我的产品表） */
    @ApiModelProperty(name = "产品库表的外键")
    private Long repoInsId;

    /** 供应商 */
    @ApiModelProperty(name = "供应商")
    private String supplierName;

    /** 险种代码 */
    @ApiModelProperty(name = "险种代码")
    private String insCode;

    /** 主险M附加险A */
    @ApiModelProperty(name = "主附险")
    private String riskType;

    /** 险种名称 */
    @ApiModelProperty(name = "险种名称")
    private String riskName;

    /** 险种保费-首年/首次 */
    @ApiModelProperty(name = "险种保费")
    private BigDecimal prem;

    /** 险种基本保额 */
    @ApiModelProperty(name = "险种基本保额")
    private BigDecimal amount;

    /** 应缴保费 */
    @ApiModelProperty(name = "应缴保费")
    private BigDecimal payablePrem;

    /** 折标率 */
    @ApiModelProperty(name = "折标率")
    private BigDecimal standRate;

    /** 实缴保费 */
    @ApiModelProperty(name = "实缴保费")
    private BigDecimal paymentPrem;

    /** 首年保费对应标保 */
    @ApiModelProperty(name = "首年保费对应标保")
    private BigDecimal standPrem;

    /** 代理人佣金率 */
    @ApiModelProperty(name = "代理人佣金率")
    private BigDecimal commissionRate;

    /** 供应商手续费率 */
    @ApiModelProperty(name = "供应商手续费率")
    private BigDecimal feeRate;

    /** 佣金 */
    @ApiModelProperty(name = "佣金")
    private BigDecimal commission;

    /** 直佣是否 */
    @ApiModelProperty(name = "直佣是否")
    private String isCommPaid;

    /** 保障期限类型 */
    @ApiModelProperty(name = "保障期限类型")
    private String coveragePeriodEnum;

    /** 供应商的基础手续费 */
    @ApiModelProperty(name = "供应商的基础手续费")
    private BigDecimal baseFee;

    /** 手续费结算月份 */
    @ApiModelProperty(name = "手续费结算月份")
    private String settleMonth;

    /** 保障期限 */
    @ApiModelProperty(name = "保障期限")
    private String coveragePeriodValue;

    /** Y结算 N和NULL没结算 */
    @ApiModelProperty(name = "是否结算")
    private String isFeeSettled;

    /** 保障期限单位 */
    @ApiModelProperty(name = "保障期限单位")
    private String coveragePeriodUnit;

    /** 缴费年期类型 */
    @ApiModelProperty(name = "缴费年期类型")
    private String chargePeriodEnum;

    /** 缴费期限 */
    @ApiModelProperty(name = "缴费期限")
    private String chargePeriodValue;

    /** 缴费期限单位 */
    @ApiModelProperty(name = "缴费期限单位")
    private String chargePeriodUnit;

    /** 险种方案外键 */
    @ApiModelProperty(name = "险种方案外键")
    private Long insSchemeId;

    /** 领取年龄 */
    @ApiModelProperty(name = "领取年龄")
    private String pensionAge;

    /** 因子1值 */
    @ApiModelProperty(name = "因子1值")
    private String factor1Value;

    /** 缴费频率类型 */
    @ApiModelProperty(name = "缴费频率类型")
    private String chargeIntervalEnum;

    /** 因子2值 */
    @ApiModelProperty(name = "因子2值")
    private String factor2Value;

    /** 是否自动续保Y N */
    @ApiModelProperty(name = "是否自动续保Y N")
    private String autoRenewalEnum;

    /** 因子3值 */
    @ApiModelProperty(name = "因子3值")
    private String factor3Value;

    /** 险种是否已经豁免(险种保费豁免时为1，默认为0) */
    @ApiModelProperty(name = "险种是否已经豁免(险种保费豁免时为1，默认为0)")
    private Long isExempted;

    /** 险种状态 */
    @ApiModelProperty(name = "险种状态")
    private String riskStatusCode;

    /** 投保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "投保日期")
    private Date applyDate;

    /** 撤单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "撤单日期")
    private Date cancelDate;

    /** 撤单原因 */
    @ApiModelProperty(name = "撤单原因")
    private String cancelCauseNote;

    /** 承保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "承保日期")
    private Date insureDate;

    /** 保单所在年度首年为1 */
    @ApiModelProperty(name = "保单所在年度首年为1")
    private Long policyYear;

    /** 保单缴费次数，首次为1 */
    @ApiModelProperty(name = "保单缴费次数，首次为1")
    private Long payNum;

    /** 保单生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "保单生效日期")
    private Date effectiveDate;

    /** 保单失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "保单失效日期")
    private Date expiredDate;

    /** 应缴日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "应缴日期")
    private Date payableDate;

    /** 客户回执签收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "客户回执签收时间")
    private Date custAckDate;

    /** 应缴月 */
    @ApiModelProperty(name = "应缴月")
    private String payableMonth;

    /** 回执录入时间(回执录入系统时间) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "回执录入时间(回执录入系统时间)")
    private Date ackDate;

    /** 实缴日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "实缴日期")
    private Date paymentDate;

    /** 险种终止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "险种终止日期")
    private Date endDate;

    /** 实缴月 */
    @ApiModelProperty(name = "实缴月")
    private String paymentMonth;

    /** 终止原因[A犹豫期退保B退保C理赔终止] */
    @ApiModelProperty(name = "终止原因[A犹豫期退保B退保C理赔终止]")
    private String endCause;

    /** 险种终止备注 */
    @ApiModelProperty(name = "险种终止备注")
    private String endCauseNote;

    /** 豁免日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "豁免日期")
    private Date waiverDate;

    /** 豁免原因 */
    @ApiModelProperty(name = "豁免原因")
    private String waiverCause;

    /** 宽限截止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "宽限截止日期")
    private Date graceDate;

    /** 代理人id */
    private Long brokerId;

    /** 保单代理人初始id */
    private Long initBrokerId;
}
